www.gusucode.com > 24Beta 虚拟主机版 1.0.0 Beta源码程序 > 24Beta 虚拟主机版 1.0.0 Beta源码程序/24Beta-1.0.0-vhost/library/framework/cli/views/shell/crud/controller.php
<?php /** * This is the template for generating the controller class file for crud. * The following variables are available in this template: * - $ID: the primary key name * - $controllerClass: the controller class name * - $modelClass: the model class name */ ?> <?php echo "<?php\n"; ?> class <?php echo $controllerClass; ?> extends CController { const PAGE_SIZE=10; /** * @var string specifies the default action to be 'list'. */ public $defaultAction='list'; /** * @var CActiveRecord the currently loaded data model instance. */ private $_model; /** * @return array action filters */ public function filters() { return array( 'accessControl', // perform access control for CRUD operations ); } /** * Specifies the access control rules. * This method is used by the 'accessControl' filter. * @return array access control rules */ public function accessRules() { return array( array('allow', // allow all users to perform 'list' and 'show' actions 'actions'=>array('list','show'), 'users'=>array('*'), ), array('allow', // allow authenticated user to perform 'create' and 'update' actions 'actions'=>array('create','update'), 'users'=>array('@'), ), array('allow', // allow admin user to perform 'admin' and 'delete' actions 'actions'=>array('admin','delete'), 'users'=>array('admin'), ), array('deny', // deny all users 'users'=>array('*'), ), ); } /** * Shows a particular model. */ public function actionShow() { $this->render('show',array('model'=>$this->load<?php echo $modelClass; ?>())); } /** * Creates a new model. * If creation is successful, the browser will be redirected to the 'show' page. */ public function actionCreate() { $model=new <?php echo $modelClass; ?>; if(isset($_POST['<?php echo $modelClass; ?>'])) { $model->attributes=$_POST['<?php echo $modelClass; ?>']; if($model->save()) $this->redirect(array('show','id'=>$model-><?php echo $ID; ?>)); } $this->render('create',array('model'=>$model)); } /** * Updates a particular model. * If update is successful, the browser will be redirected to the 'show' page. */ public function actionUpdate() { $model=$this->load<?php echo $modelClass; ?>(); if(isset($_POST['<?php echo $modelClass; ?>'])) { $model->attributes=$_POST['<?php echo $modelClass; ?>']; if($model->save()) $this->redirect(array('show','id'=>$model-><?php echo $ID; ?>)); } $this->render('update',array('model'=>$model)); } /** * Deletes a particular model. * If deletion is successful, the browser will be redirected to the 'list' page. */ public function actionDelete() { if(Yii::app()->request->isPostRequest) { // we only allow deletion via POST request $this->load<?php echo $modelClass; ?>()->delete(); $this->redirect(array('list')); } else throw new CHttpException(400,'Invalid request. Please do not repeat this request again.'); } /** * Lists all models. */ public function actionList() { $criteria=new CDbCriteria; $pages=new CPagination(<?php echo $modelClass; ?>::model()->count($criteria)); $pages->pageSize=self::PAGE_SIZE; $pages->applyLimit($criteria); $models=<?php echo $modelClass; ?>::model()->findAll($criteria); $this->render('list',array( 'models'=>$models, 'pages'=>$pages, )); } /** * Manages all models. */ public function actionAdmin() { $this->processAdminCommand(); $criteria=new CDbCriteria; $pages=new CPagination(<?php echo $modelClass; ?>::model()->count($criteria)); $pages->pageSize=self::PAGE_SIZE; $pages->applyLimit($criteria); $sort=new CSort('<?php echo $modelClass; ?>'); $sort->applyOrder($criteria); $models=<?php echo $modelClass; ?>::model()->findAll($criteria); $this->render('admin',array( 'models'=>$models, 'pages'=>$pages, 'sort'=>$sort, )); } /** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the primary key value. Defaults to null, meaning using the 'id' GET variable */ public function load<?php echo $modelClass; ?>($id=null) { if($this->_model===null) { if($id!==null || isset($_GET['id'])) $this->_model=<?php echo $modelClass; ?>::model()->findbyPk($id!==null ? $id : $_GET['id']); if($this->_model===null) throw new CHttpException(404,'The requested page does not exist.'); } return $this->_model; } /** * Executes any command triggered on the admin page. */ protected function processAdminCommand() { if(isset($_POST['command'], $_POST['id']) && $_POST['command']==='delete') { $this->load<?php echo $modelClass; ?>($_POST['id'])->delete(); // reload the current page to avoid duplicated delete actions $this->refresh(); } } }